<?php
namespace app\common\controller;

use think\Controller;
use think\facade\Config;

/**
 * 自定义基类控制器（可应用于前后端所有端口都使用的情况）
 *
 * @author LCY <409028735@qq.com>
 */
class Base extends Controller
{
    /**
     * @var bool
     * 是否开启验证
     */
    protected $openValidate = true;

    /**
     * 自定义控制器初始化
     *
     * @return void
     */
    public function initialize()
    {
        $this->setSeo();
    }


    /**
     * 设置页面的seo信息
     * @param string $title
     * @param string $keywords
     * @param string $description
     * Author: LCY<409028735@qq.com>
     * Time: 2021/11/20 14:07
     * Note:
     */
    protected function setSeo($title = '', $keywords = '', $description = '')
    {
        $site_name = Config::get('myadmin.site_name','成都尚玖保洁');
        $seo = [
            'title' => $title ? $title.'|'.$site_name : $site_name,
            'keywords' => $keywords,
            'description' => $description,
        ];
        $this->assign('seo', $seo);
    }

    /**
     * 验证数据并且自动响应
     * @access protected
     * @param  array        $data     数据
     * @param  string|array $validate 验证器名或者验证规则数组
     * @param  array        $message  提示信息
     * @param  bool         $batch    是否批量验证
     * @param  mixed        $callback 回调方法（闭包）
     * @return array|string|true
     * @throws ValidateException
     */
    protected function validate_response($data, $validate, $message = [], $batch = false, $callback = null){
        if ($this->openValidate) {
            $res = $this->validate($data, $validate, $message, $batch, $callback);
            if(true !== $res){
                $this->error($res);
            }
        }

    }


}